package com.sun.umbrella.dao;

import com.sun.umbrella.domain.entity.RoleResRelationDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @description: 角色资源关联关系表
 * @author: Jay
 * @date: 2018-05-03
 * @version: V1.0
 */
public interface RoleResRelationMapper {

    /**
     * 删除记录
     *
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入字段必须全部存在
     *
     * @param record
     * @return
     */
    int insert(RoleResRelationDO record);

    /**
     * 动态插入记录
     *
     * @param record
     * @return
     */
    int insertSelective(RoleResRelationDO record);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    RoleResRelationDO selectByPrimaryKey(Integer id);


    /**
     * 动态更新
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(RoleResRelationDO record);


    /**
     * 更新所有，字段不能为空
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(RoleResRelationDO record);

    /**
     * 根据sysId和roleId查询资源id的集合
     *
     * @param sysId
     * @param roleId
     * @return
     */
    List<Integer> selectResIdListByRoleIdAndSysId(@Param("sysId") Integer sysId, @Param("roleId") Integer roleId);


    /**
     * 根据sysId和roleId查询资源集合
     *
     * @param sysId
     * @param roleId
     * @return
     */
    List<RoleResRelationDO> selectRoleResList(@Param("sysId") Integer sysId, @Param("roleId") Integer roleId);


    /**
     * 根据id删除角色与资源对应的关系
     *
     * @param modifier
     * @param idList
     * @return
     */
    int deleteRoleResRelation(@Param("idList") List<Integer> idList,@Param("modifier") Integer modifier);


    /**
     * 批量插入记录
     *
     * @param list
     * @return
     */
    int batchInsert(@Param("list") List<RoleResRelationDO> list);
}